# 包也是一个模块（增强模块：功能想的模块，放到一起）
# 假如子目录中也有__init__.py那么它就是这个包的子包了
# 当你将一个包作为模块导入(比如从 xml导入 dom)的时候，实际上导入了它的__init__.py 文件。

# 目录和包唯一不同：有没有__init__.py 文件
#   包：是一个带有特殊文件__init__.py 的目录，而__init__.py 文件定义了包的属性和方法
#   目录：什么也不定义，可以只是一个空文件，但是必须存在
#   总结：如果__init__.py 不存在，这个目录就仅仅是一个目录，而不是一个包，它就不能被导入或者包含其它的模块和嵌套包。

# 定义包时，一般会带有__pycache__，为包的临时文件或缓存文件
#   py代码在执行前，需要被解析器先转换为机器码，然后再执行
#   所以我们在使用模块（包)时，也需要将模块的代码先转换为机器码然后再交由计算机执行#而为了提高程序运行的性能，python会在编译过一次以后，将代码保存到一个缓存文件中
#   这样在下次加载这个模块(包)时，就可以不再重新编译而是直接加载缓存中编译好的代码即可
